As is well known, solid state storage devices such as SD cards or solid state drives (SSD) are widely used in various electronic devices. Generally, a solid state storage device comprises a controlling circuit and a non-volatile memory.
FIG. 1 is a schematic functional block diagram illustrating the architecture of a conventional solid state storage device. As shown in FIG. 1, the solid state storage device 100 comprises a control circuit 10, a read only memory (ROM) 30 and a non-volatile memory 20. The non-volatile memory 20 is used for storing write data. A firmware program is stored in the read only memory. When the firmware program is executed, associated operations of the solid state storage device 100 are performed.
The solid state storage device 100 is connected with a host 150 through an external bus 110. For example, the external bus 110 is a USB bus, an SATA bus, a PCIe bus, an M.2 bus, a U.2 bus, or the like.
As shown in FIG. 1, the control circuit 10 comprises a storage unit 12. The storage unit 12 comprises a first storage zone 12a and a second storage zone 12b. After the control circuit 10 is produced, a boot code loader has been stored in the first storage zone 12a in order to enable the solid state storage device 100. Generally, the first storage zone 12a is set as a read-only storage zone. Consequently, the boot code loader cannot be modified. Moreover, the boot code loader is still stored in the first storage zone 12a when the supplied electric power is interrupted.
After the solid state storage device 100 receives the electric power, a start-up procedure is performed. During the start-up procedure, the boot code loader in the first storage zone 12a is executed by the control circuit 10. Consequently, the firmware program in the read only memory 30 is loaded into the second storage zone 12b of the storage unit 12.
After the firmware program in the read only memory 30 is loaded into the second storage zone 12b of the storage unit 12, the start-up procedure is completed. Then, the firmware program in the second storage zone 12b is executed by the control circuit 10. Consequently, the solid state storage device 100 is in a normal working state.
When the solid state storage device 100 is in the normal working state, the control circuit 10 performs the associated operation according to the command from the host 150. For example, according to a write command, a write data from the host 150 is stored into the non-volatile memory 20. Alternatively, according to a read command, a read data is read from the non-volatile memory 20 and transmitted to the host 150 under control of the control circuit 110.
When the electric power supplied to the solid state storage device 100 is interrupted, the firmware program in the second storage zone 12b of the storage unit 12 is lost. After the solid state storage device 10 receives the electric power again and the start-up procedure is performed, the boot code loader in the first storage zone 12a is executed by the control circuit 10. Consequently, the firmware program in the read only memory 30 is loaded into the second storage zone 12b of the storage unit 12 again.
For example, the read only memory 30 of the solid state storage device 100 is a one-time programmable read only memory (OTPROM) or an electrically-erasable programmable read only memory (EEPROM) that has a small memory capacity.
In the conventional solid state storage device 100, the read only memory 30 is used for storing the firmware program only. Moreover, the use of the read only memory 30 increases the cost of the solid state storage device 100.